\section{Tom Clabon}

My main contributions to the game have been:

\bit

\item Handling all user input. This includes the mouse, keyboard
and the joystick. A lot of time was spent with Jamie trying to
smooth the pod joystick which was eventually replaced with a new
one. In the later stages of development, I overhauled all of this
code to extend the InputDevice class. (2 weeks)

\item Allowing the camera to slowly track the orb. This involved
developing an algorithm to ensure that the camera looked in the
orb's direction as much as possible without turning too quickly
such that the player becomes disorientated. (1 week)

\item Added the ability to change the camera perspective between
first and third person. (2 days)

\item Implementing all the pod movement, from the pitch and roll
to simulate the tilt of the level as well as the collision simulation
(both methods - resolving forces and ray casting). (2 weeks)

\item Some of the initial linux compilation. This mainly involved
implementing platform specific functions in a platform independent
way (see Utilities.cpp) as well developing the Makefile. In conjunction
with Jamie, I have also regularly compiled the game on both Windows
and Linux to ensure that it still works on both and that we don't get
any unnecessary warnings. (1 week)

\item Implementing replays. This took a lot of time as much of the game needed
to be restructured as a result. The main parts included adding a new PlayState
and a new InputDevice as well as linking up Jamie's ReplayRecorder class so that
we could record the actions of the player, save them and play them back again.
(3 weeks)

\item As part of implementing replays, I restructured the playstate
class to make it a pure virtual class with inherited classes to handle
different types of playing, such as single user and replays. (1 week)

\item Another part of implementing replays involved restructuring the way input
is handled. There is now an interface called InputDevice which is extended by
ReplayController as well as all of the original input devices. (1 week)

\item I helped Kenny with setting up the Player class which holds all
player specific objects, such as the input device and the physical
objects. (1 week)

\item Animation of the camera during a teleport. To make the teleports
look smoother I added a teleport controller which accelerates
and decelerates the orb between the teleport positions so that the user
knows which part of the level they are going to. (1 day)

\eit
